Skip to content

Conversation

@Daniel-Mendes
Copy link

Summary

Migrate the repository to pnpm and standardize dependency management across the monorepo:

  • Use pnpm workspaces with workspace:* protocol for internal package linking.
  • Centralize versions with the pnpm catalog in pnpm-workspace.yaml.
  • Update CI to use pnpm with proper caching.
  • Update scripts and docs to use pnpm commands.

PS: I also fixed this open issue #7616

Test plan

I run pnpm run build and all packages build with no errors

Checklist

Please add a x inside each checkbox:

@Daniel-Mendes Daniel-Mendes requested a review from a team as a code owner October 26, 2025 12:47
@martinjagodic
Copy link
Member

@Daniel-Mendes, thanks for the effort, but why would we want this? It's a huge changelog, so we need a good reason to merge this.

@Daniel-Mendes
Copy link
Author

Hi @martinjagodic,

Thanks for the review! The large diff comes from running the official React codemod to migrate from jsx: "react" to jsx: "react-jsx". It automatically removed the now-unnecessary import React lines across many files.
PS: I did this because of eslint errors

I agree it makes the history heavy. If you prefer, I can split this into two PRs:

  • one for the pnpm migration
    -and one for the React codemod cleanup

That way, each change is easier to review.

@Daniel-Mendes
Copy link
Author

The main reason for switching to pnpm is maintainability, not just speed. Its strict dependency structure makes it easier to detect unused or obsolete packages, avoid hidden hoisting issues, and keep the dependency tree clean. It also ensures more reliable installs and simpler future migrations.

@martinjagodic
Copy link
Member

Yes, please split into 2 PRs; these are 2 different things.

I doubt that we will accept the pnpm migration. We can detect unused packages with npm just as well. Yes, it looks cleaner to only have a version in one place and then reference it in another, but these are managed automatically by npm (and nx), so it's not intended to be used by a human. The real issue here is that we have one package for every feature, which is the real cause of stress.

The React codemod is a nice refactor. I would be glad to merge that.

@Daniel-Mendes
Copy link
Author

https://github.com/Daniel-Mendes/decap-cms/blob/refactor/migrate-to-vite/scripts/vite.js

And what about a migration to vite for better dev and build times, i already have a test repo, do you want a pull request too ?

@martinjagodic
Copy link
Member

If you have it already, it would be nice to see the Vite PR. But if it's a huge diff, I would be wary about merging it.

@Daniel-Mendes
Copy link
Author

So i splitted the jsx runtime to #7647

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants